

import Vue from 'vue'
import Vuex from 'vuex'
import vuexP from 'vuex-persist'
Vue.use(Vuex)

const store = new Vuex.Store({


// import {createStore} from 'vuex'
// const store  = createStore({

	state:{
		msg:'123',
		cart:uni.getStorageSync('cart')|| [],//存放购物车数据
	},
	mutations:{
		// 添加购物车
		addCart(state,obj){
				// find()  返回值   
			let bool = state.cart.find(item=>item.id == obj.id)
			
			if(bool){
				// 相同商品 数量++
				bool.num++
			}else{
				  // 第一次添加  给obj一个字段 num = 1  
				  obj.num = 1
				  obj.isCheck = false //给obj添加的一个字段，表示选中不选中 默认不选中 
				  state.cart.push(obj)
			}
			console.log(state.cart);
			// 把购物车存在本地
			uni.setStorageSync('cart',state.cart)
		
		},
		// 全选反选
		handeChangeAll(state,all){
			console.log(all);
			// all 就是全选的状态
			state.cart.forEach(item=>{
				item.isCheck = all
			})
			// uni.setStorageSync('cart',state.cart)
		},
		// 单选
		checks(state,index){
			// 取反
			state.cart[index].isCheck = !state.cart[index].isCheck
			
		},
		// 单个删除
		delOne(state,id){
			let index = state.cart.findIndex(item=>item.id == id)
			state.cart.splice(index,1)
			uni.setStorageSync('cart',state.cart)
		},
		// 选中删除
		selectDel(state){
			// 留下不删除的
			state.cart = state.cart.filter(item=>item.isCheck == false)
			uni.setStorageSync('cart',state.cart)
			
		},
		// 修改数量
		changeNum(state,obj){
			let {value,index} = obj
			state.cart[index].num = value
			uni.setStorageSync('cart',state.cart)
			
			
		}
		
	},
	getters:{},
	actions:{},
	modules:{},
	plugins:[
		new vuexP({
			storage:{
				setItem:(key,value)=>uni.setStorageSync(key,value),//存
				getItem:(key)=>uni.getStorageSync(key)//取
				
			}
		}).plugin
	]
})

export default store